MuleSoft Accelerator for Healthcare
Use case 4 - Appointment scheduling
Streamline the appointment scheduling process via prebuilt APIs
Overview
Appointments are at the center of all key patient engagement touch-points, and appointment scheduling, in particular, provides critical value to patients. It's also a source of high revenue leakage for providers due to no-shows, cancellations, the wrong visit type, or long wait times while booking an appointment.
Historically, the process to schedule an appointment has been time-intensive for staff and frustrating for patients due to its manual nature. Organizations are now seeking ways to automate this process through the use of APIs to power an improved staff and patient experience.
Use case description
This use case provides customers with prebuilt APIs and implementation templates to show appointment information from EHR systems to consuming applications like Salesforce Health Cloud. By establishing these integrations, call center agents using Salesforce can identify available slots, schedule, and cancel appointments as needed on behalf of the patient. The solution is designed to support customers leveraging Epic, Cerner, or athenahealth as their EHR and Salesforce Health Cloud’s Intelligent Appointment Management functionality; however, the solution can be extended as needed.
Functional view
Glossary
| Term | Definition |
|---|---|
| IAM | Health Cloud Intelligent Appointment Management system provides a patient appointment booking experience in Salesforce for call center agents and care coordinators. |
| EHR | An Electronic Health Record is a digital version of a patient's paper chart. It contains the patient's medical history, diagnoses, medications, treatment plans, immunization dates, allergies, radiology images, and laboratory test results. |
| FHIR | Fast Healthcare Interoperability Resources is an HL7 specification for healthcare interoperability. It's a JSON-based standard describing data formats, elements, and an application programming interface for exchanging electronic health records. |
High-level architecture
Workflow
End-to-end scenarios
- Call center representatives or care coordinators from Salesforce IAM fetch the slot information and confer with the patient to identify desired time, location, etc.
- Upon identification of the desired appointment slot, book appointment from Salesforce. The status is updated accordingly in EHR.
- In a situation where a patient is seeking to cancel their appointment, a call center representative can cancel from Salesforce IAM (and schedule a new appointment if necessary).
Processing logic
The Appointment Scheduling Process API supports the following workflow:
- Query the
/Slotresource to search for available slots which orchestrates calls to your backend EHR, such as Epic, Cerner, or athenahealth via Generic FHIR Client System API to query for available time slots that can be booked. - Invoke the
/Slotresource to get the status of the selected slot from the EHR system. - If the slot is available, invoke the
/Appointmentresource to book an appointment, which sends a request to the appropriate system API to book the appointment. - To cancel an appointment, invoke the
/Appointmentresource with the appropriate status.
The workflow was tested with Epic, Cerner, and athenahealth EHRs. See the table for the supported functionality.
| Function | Epic | Cerner | athenahealth |
|---|---|---|---|
| Search Slots | Supported | Supported | Supported |
| Check Slot Status | Partially supported* | Supported | Supported |
| Book Appointment | Supported | Supported | Supported |
| Get Appointment by Id | Supported | Supported | Supported |
| Cancel Appointment | Not supported | Supported | Supported |
| Search Appointments for Patient | Supported | Supported |
* Although Epic provides the endpoints to /Slot Read, unable to validate the status of the slot via publicly available sandbox as it does not return a response payload.
Sequence diagram
Success conditions
Upon successful, the following conditions will bet met:
- Fetch available slots from the EHR system and display on IAM
- Book an appointment and manage it
Assumptions and constraints
- Supports Epic Open APIs STU3 implementation
- Cancellation of appointments is not supported for Epic
- Supports Oracle Cerner Millennium APIs R4 implementation
- Supports athenahealth Appointment API R4 implementation. The Generic FHIR Client sends athenahealth requests to a Mule System API for athenahealth
- Retrieving slots from EHRs using IAM-supported filter options has these limitations:
- Epic doesn't support the ability to filter slots by a practitioner, subspecialty, or plan type via Open APIs.
- Cerner doesn’t support the ability to filter slots by a subspecialty or plan type via Millennium APIs.
- athenahealth supports providers but not assets and doesn't support multi-resource booking.
Before you begin
|
The Getting Started with MuleSoft Accelerators guide provides general information on getting started with the accelerator components. This includes instructions on setting up your local workstation for configuring and deploying the applications. |
Downloadable assets
Process APIs
- Appointment Scheduling Process API | API Specification | Implementation Template
System APIs
- Generic FHIR Client System API | API Specification | Implementation Template
- athenahealth Client API | API Specification | Implementation Template
MuleSoft Direct assets
For Salesforce Health Cloud customers interested to deploy MuleSoft applications via MuleSoft Direct, access the assets and documentation below:
- Appointment Scheduling Integration | API Specification | Application
- athenahealth Integration | API Specification | Application
References
Here are some links to related and supporting documentation.
- Epic Open API for Find Appointments
- Epic Open API for Book Appointment
- Oracle Cerner Health Millennium API
- Health Cloud Intelligent Appointment Management
- athenahealth API Documentation
Demonstration
Interested to see these assets in action, check out this demo recording highlighting this use case!